Fair Channel Allocation for Multiple Clients

ABSTRACT

A wireless access device transmits encoded media streams to at least first and second clients over a shared wireless channel. First and second transmission windows are established in a transmission frame interval for transmission of media packets to the first and second clients, respectively. An unused portion of one of the transmission windows is identified using, for example, transmission status information (from the wireless access device) associated with the media packets. The unused portion of the transmission window is adaptively reallocated for use in transmission of media packets associated with the other transmission window. In one mode of operation, the reallocation process may trigger a reversal in the order of the first and second transmission windows in subsequent transmission frame intervals.

CROSS REFERENCE TO RELATED PATENTS/PATENT APPLICATIONS ProvisionalPriority Claim

The present U.S. Utility Patent Application claims priority pursuant to35 U.S.C. §119(e) to the following U.S. Provisional Patent Applicationwhich is hereby incorporated herein by reference in its entirety andmade part of the present U.S. Utility Patent Application for allpurposes:

1. U.S. Provisional Patent Application Ser. No. 61/491,838, entitled“Media communications and signaling within wireless communicationsystems,” (Attorney Docket No. BP22744), filed Apr. 31, 2011, pending.

INCORPORATION BY REFERENCE

The following U.S. Utility Patent Applications are hereby incorporatedherein by reference in their entirety and made part of the present U.S.Utility Patent Application for all purposes:

1. U.S. Utility patent application Ser. No. 13/223,250, entitled“Dynamic Wireless Channel Selection and Protocol Control for StreamingMedia,” (Attorney Docket No. BP22783), filed on Aug. 31, 2011, pending,which claims priority pursuant to 35 U.S.C. §119(e) to the followingU.S. Provisional Patent Application which is hereby incorporated hereinby reference in its entirety and made part of the present U.S. UtilityPatent Application for all purposes:

-   -   1.1. U.S. Provisional Patent Application Ser. No. 61/491,838,        entitled “Media communications and signaling within wireless        communication systems,” (Attorney Docket No. BP22744), filed        Apr. 31, 2011, pending.

2. U.S. Utility patent application Ser. No. ______, entitled “AdaptiveWireless Channel Allocation for Media Distribution in a Multi-userEnvironment,” (Attorney Docket No. BP22757.1), filed on the same dateherewith, pending, which claims priority pursuant to 35 U.S.C. §119(e)to the following U.S. Provisional Patent Application which is herebyincorporated herein by reference in its entirety and made part of thepresent U.S. Utility Patent Application for all purposes:

-   -   2.1. U.S. Provisional Patent Application Ser. No. 61/491,838,        entitled “Media communications and signaling within wireless        communication systems,” (Attorney Docket No. BP22744), filed        Apr. 31, 2011, pending.

INCORPORATION BY REFERENCE

The following standards/draft standards are hereby incorporated hereinby reference in their entirety and are made part of the present U.S.Utility Patent Application for all purposes:

1. “WD3: Working Draft 3 of High-Efficiency Video Coding, JointCollaborative Team on Video Coding (JCT-VC),” of ITU-T SG16 WP3 andISO/IEC JTC1/SC29/WG11, Thomas Wiegand, et al., 5^(th) Meeting: Geneva,CH, 16-23 March, 2011, Document: JCTVC-E603, 215 pages.

2. International Telecommunication Union, ITU-T, TELECOMMUNICATIONSTANDARDIZATION SECTOR OF ITU, H.264 (March 2010), SERIES H: AUDIOVISUALAND MULTIMEDIA SYSTEMS, Infrastructure of audiovisual services—Coding ofmoving video, Advanced video coding for generic audiovisual services,Recommendation ITU-T H.264, also alternatively referred to asInternational Telecomm ISO/IEC 14496-10—MPEG-4 Part 10, AVC (AdvancedVideo Coding), H.264/MPEG-4 Part 10 or AVC (Advanced Video Coding), ITUH.264/MPEG4-AVC, or equivalent.

INCORPORATION BY REFERENCE

The following IEEE standards/draft IEEE standards are herebyincorporated herein by reference in their entirety and are made part ofthe present U.S. Utility Patent Application for all purposes:

1. IEEE Std 802.11™—2007, “IEEE Standard for Informationtechnology—Telecommunications and information exchange betweensystems—Local and metropolitan area networks—Specific requirements; Part11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY)Specifications,” IEEE Computer Society, IEEE Std 802.11™—2007, (Revisionof IEEE Std 802.11-1999), 1233 pages.

2. IEEE Std 802.11n™—2009, “IEEE Standard for Informationtechnology—Telecommunications and information exchange betweensystems—Local and metropolitan area networks—Specific requirements; Part11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY)Specifications; Amendment 5: Enhancements for Higher Throughput,” IEEEComputer Society, IEEE Std 802.11n™—2009, (Amendment to IEEE Std802.11™-2007 as amended by IEEE Std 802.11k™—2008, IEEE Std802.11r™—2008, IEEE Std 802.11y™—2008, and IEEE Std 802.11r™—2009), 536pages.

3. IEEE P802.11ac™/D1.1, August 2011, “Draft STANDARD for InformationTechnology—Telecommunications and information exchange betweensystems—Local and metropolitan area networks—Specific requirements, Part11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY)specifications, Amendment 5: Enhancements for Very High Throughput forOperation in Bands below 6 GHz,” Prepared by the 802.11 Working Group ofthe 802 Committee, 297 total pages (pp. i-xxiii, 1-274).

BACKGROUND OF THE INVENTION

1. Technical Field of the Invention

The invention relates generally to wireless communication systems; and,more particularly, it relates to adaptive channel allocation for videostream transmissions.

2. Description of Related Art

Many approaches for improving video error robustness/concealment havebeen proposed, and these approaches can generally be divided into twogroups. The first group is related to network layer solutions thatattempt to recover the error/packet loss at packet layer, by providingan error free A/V stream to the video decoder. Such solutions usuallyrequire redundant codes and retransmissions. The second group is relatedto video layer solutions, especially post-processing, that will accept acorrupted video stream and try to mitigate gaps and mismatches in thedecoded video frames.

As may be understood, both of these groups (network layer solutions andvideo layer solutions) have their strengths and weaknesses. Inparticular, a heavily protected network layer might be very robust andresilient to errors, but usually this is accompanied by a reduction inthe constant throughput of the channel and/or an increase in theeffective latency of the channel. For the video layer, one of theprimary considerations is the overall user experience (e.g., theperceptual experience of a user). Video should appear smooth andnatural, even under variable network conditions. Under variable channelconditions, providing an acceptable user experience can be particularlychallenging for real-time (or near real-time) video streams, as bothpacket loss and channel delay can have deleterious effects on perceivedvideo quality (e.g., blocking or blurring effects, video freezing orjerkiness, and audio/video synchronization issues).

More particularly, during real-time video encoding and transmission, apacket transmission incremental delay that causes the packet to arriveat the receiver after the time it is needed for decoding might have thesame effect as a dropped or lost packet. The video decoder typicallyneeds to decode and present each video frame within a relatively shorttime period. Consequently, if a packet is delayed too much over thenetwork it might be impossible to complete frame decoding in time fordisplay. If a delayed or dropped frame is also a reference frame forother frames, decoding errors for multiple frames may occur.Particularly in the context of wireless communications under noisychannel conditions, the present art does not provide an adequate meansby which communication of video/media related content may be effectuatedin a robust, reliable, and perceptually acceptable manner.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

FIG. 1 is a block diagram representation of a video network inaccordance with an embodiment of the present invention.

FIG. 2 is a functional block diagram of a communication system in whichmedia streams are communicated to a plurality of client devices over ashared wireless channel in accordance with one embodiment of the presentinvention.

FIG. 3 is an example transmission frame interval according to oneembodiment of the invention that supports transmission of media framesto two client devices.

FIGS. 4A-4D illustrate example allocations of the transmission frameinterval of FIG. 3 according to various wireless channel conditions.

FIG. 5 is a flow chart that illustrates channel allocation by a wirelessaccess device according to an embodiment of the invention.

FIG. 6 is a flow chart that illustrates channel allocation according toan alternate embodiment of the invention.

FIGS. 7A and 7B are functional block diagrams illustrating adaptivewireless channel allocation in a multi-user environment in accordancewith a further embodiment of the invention.

FIG. 8 is an operational flow diagram illustrating a method foradaptively allocating channel capacity based on relative priorities ofreceiving devices in accordance with an embodiment of the presentinvention.

DETAILED DESCRIPTION OF THE INVENTION

A number of protocols have been developed for applications involving thetransmission of streaming video, real-time audio/video, home gamingaudio/video, et cetera over multicast or unicast networks. Theseprotocols are generally effective when the transmission medium is notheavily loaded and transmission delays are infrequent. However, many ofthese protocols (such as the Real-time Transport Protocol (RTP)/RealTime Streaming Protocol (RTSP)) or variants do not always guaranteeQuality of Service (QoS) for real-time services. Likewise, otherstandards-based QoS approaches (e.g., Wi-Fi Multimedia (WMM)) may notprovide for guaranteed channel throughput.

Certain techniques, such as packet aggregation, may improve efficiencyby allowing transmission bursts of multiple data packets. However, theprobability of packet corruption (e.g., due to collision or channelnoise) increases with packet size. In particular, use of large frameaggregation sizes may not provide optimal multi-user experience in highbit error rate (BER) channels. Multimedia traffic, for example, may haveassociated QoS requirements (e.g., maximum tolerable delay and/or frameerror rates) that are negatively impacted by less than optimal framesizes. In gaming environments and other delay-sensitive applicationssuch as streaming multimedia or Voice over Wireless LAN, including forexample relatively constant bit applications such as IPTV, low latencyis desirable in order to reduce the occurrence of lags that might arisefrom channel deterioration.

In addition, certain implementations of a medium access control (MAC)scheduler (e.g., a 802.11e/WMM MAC scheduler) may, by default, attempttransmission of aggregated MAC protocol data units (A-MPDUs) destinedfor a given client device in the order of arrival from the encoder, andinvoke retransmission procedures for failed packets (up to a maximumretry limit) at lower PHY rates for improved error resiliency underchanging channel conditions. Multiple retransmissions at “fall back” PHYrates, however, may typically entail greater channel coding rates(redundant data). Further, if at least one receiving device operating ashared transmission medium has a low SNR or other channel qualitylimitations (such as a low MIMO rank) and requires a relatively highpercentage of channel capacity, other client devices may sufferperformance degradation. As will be appreciated, use of adaptive channelallocation according to the present invention may reduce the occurrenceof such performance degradation.

Novel approaches are presented herein for optimizing video transmissionover a packet-based, lossy communication medium/channel in order toimprove the end user experience. The novel approaches relate to adaptivechannel allocation based on unused allocations and/or quality ofreceived video streams in order to improve error concealment, errorresilience and bandwidth usage during, for example, transmission of avideo stream(s) having a relatively constant bit rate. The novelapproaches are generally related to video digital video compression, andgenerally applicable to video compression standards, protocols, and/orrecommended practices (e.g., MPEG-4 Part 2, H.264 (AVC), VC-1, WMV, AVS,RealVideo and Quicktime, among others). While the novel approachespresented herein often employ wireless packet-based transmissions asexemplary embodiments (e.g., UDP/IP), the various aspects andprinciples, and their equivalents, can also be extended generally to anypacket-based network transmission (regardless of the particular type ofcommunication medium being employed such as wired, wireless, optical, etcetera), including over lossy or variable communication channels.

Referring more specifically to the figures, FIG. 1 is a block diagramrepresentation of a video network 110 in accordance with an embodimentof the present invention. The network 112 distributes information suchas video content 122 from a video source 120 (or video content 122′ fromdirectly coupled video source 120′) to a wireless access device 114 forwireless transmission to wireless video devices, such as video device116 and mobile video device 118, over one or more wireless channels. Thevideo content 122 can include movies, television shows, commercials orother advertisements, educational content, video gaming content,infomercials, animation, menu/interactive content and/or other programcontent and optionally additional data associated with such programcontent including but not limited to digital rights management data,control data, programming information, additional graphics data andother data that can be transferred in association with program content.Video content 122 can include video with or without associated audiocontent. The video content 122 can be sent as broadcast video, streamingvideo, video on demand and near video on demand programming and/or otherformats.

The network 112 can be a dedicated video distribution network such as adirect broadcast satellite network or cable television network thatdistributes video content 122 from a plurality of video sources,including video source 120, to a plurality of wireless access devicesand, optionally, wired devices over a wide geographic area.Alternatively, network 112 can be a heterogeneous network that includesone or more segments of a general purpose network such as the Internet,a metropolitan area network, wide area network, local area network orother network and optionally other networks such as an Internet protocol(IP) television network. Over various portions of a given network, thevideo content 122 can be carried as analog and/or digital signalsaccording to various recognized protocols.

Wireless access device 114 may comprise a base station or access pointthat provides video content 122 to one or a plurality of videosubscribers over a wireless local area network (WLAN) such as an802.11a, b, g, n, WIMAX or other WLAN network, or a cellular networksuch as a UMTS, EDGE, 3G, 4G or other cellular data network. Inaddition, the wireless access device 122 can comprise a home gateway,video distribution point in a dedicated video distribution network orother wireless gateway for wirelessly transmitting video content 122,either alone or in association with other data, signals or services, tovideo device 116 and/or mobile video device 118.

Mobile video device 118 may comprise a video enabled wirelesssmartphone, remote gaming interface, portable media player, laptop ortablet computer, “digital” book, or other handheld communication devicethat is capable of displaying video content. Video device 116 maycomprise other video display devices that may or may not be mobileincluding a television coupled to a wireless receiver, a computer withwireless connectivity via a wireless data card, wireless tuner, wirelessspeakers (e.g., surround sound speakers for receiving high quality audiothat may have strict latency requirements), WLAN modem or other wirelesslink or device that alone or in combination with other devices iscapable of receiving video content 122 from wireless access device 114and displaying and/or storing the video content 122 for a user. Thenetwork 112, wireless access device 114, video device 116 and/or mobilevideo device 118 include one or more features of the present inventionthat will be described in greater detail in conjunction with FIGS. 2-8that follow.

FIG. 2 is a functional block diagram of a communication system 200 inwhich media streams are communicated to a plurality of client devicesover a shared wireless channel in accordance with one embodiment of thepresent invention. Packetizer/framing logic 236 is shown that can beused as part of wireless access device in the form of a mediaserver/gaming console 202 to provide (rendered) media streams 204 and206 to video device 1 210 and video device 2 220, respectively, over awireless channel 208. Generally speaking, when considering acommunication system in which video data is communicated wirelessly fromone location, or subsystem, to another, video data encoding maygenerally be viewed as being performed at a transmitting side of thewireless channel 208, and video data decoding may generally be viewed asbeing performed at a receiving side of the wireless channel 208.

In the illustrated embodiment, video content is provided by a videosource 120 to the media server/gaming console 202 for (further) encodingand transmission. The video source 120 may comprise, for example, agraphics processing unit in a gaming console or like device thatproduces a rendered video steam. Alternatively, the video content may becommunicated to the media server/gaming console 202 by various meanssuch as those described above, including through a broadbandinternet/wide area network (WAN) connection 201. In one embodiment, themedia server/gaming console 202 may be coupled to a cable or satelliteset top box or the like by a standardized interconnect/interface such asan HDMI cable, an Ethernet cable, a high bandwidth wireless link (e.g.,a WiGig or WirelessHD compliant link) capable of transmitting standardor high definition video content, or various combinations of suchtechnologies. Further, the communication system 200 may comprise one ormore additional video devices 230 or groupings/ad hoc groupings of suchdevices.

Media server/gaming console 202 includes a video encoder(s) 232 thatreceives and encodes video content from a video source 120 fortransmission (in the form of media stream 204/206) by transceiver 234over wireless channel 208. As described more fully below with referenceto FIGS. 3-8, the illustrated transceiver 234 includespacketizer/framing logic 236 operable, in conjunction with other mediumaccess control (MAC) functionality, to adaptively allocate (orreallocate) channel capacity in transmission windows. The transceiver234 further includes a communication packet buffer 238 for bufferingencoded media packets for transmission, or retransmission under certaincircumstances. The packetizer/framing logic 236 may communicate directlywith a wireless driver 240 and other physical layer (PHY) functionalityto coordinate transmissions in accordance with the present invention.Among other functions, such PHY functionality establishes and terminatesconnections to the wireless channel 208 and generates and transmitsmodulated RF signals containing encoded media packets.

In the illustrated embodiment, one or more media streams 204/206 arereceived by client transceivers 212 and 222 of video device 1 210 andvideo device 2 220 (referred to collectively or in the alternative asvideo device 1 210 when contextually appropriate). PHY and MACfunctionality within client transceivers 212 and 222 then demodulatesand down converts RF signals containing the media streams 204/206. Inturn, the extracted media streams 204/206 are provided to respectivedecoders 214 and 224, which operate to generate decoded video streamsfor display on video displays 218 and 220.

The video devices 210 and 220 of the disclosed embodiment also providetransmission-related information and feedback to the media server/gamingconsole 206 including, for example, information regarding channel andreception characteristics 244/248 and bit error rate before errorcorrection, signaling in accordance with an acknowledgement (ACK/NACK)protocol 246/250, and human interface device (HID) events 242. Suchtransmissions may be utilized in determining transmission delay valuesand wireless channel conditions under a variety of operating conditionsand channel selection options. Channel selection and protocol parametercontrol signals may also be provided from the media server/gamingconsole 206 to video device 1 210 to indicate new channel and/orprotocol parameter selections and to synchronize further wirelesscommunications.

The HID events 242 may be triggered, for example, by input from usercontrols 216/262, including tactile and/or auditory user input. Inaddition, the HID events 242 may reflect other sources ofcontrol/feedback information, including environmental, proximity andmotion sensors. As discussed more fully below in conjunction with FIGS.7A, 7B and 8, the HID events 242 or similar signaling may be used inadaptive channel allocation in accordance with certain embodiments ofthe invention.

Hereinafter, the terms “ACK”, “acknowledgement”, and “BA”/“BACK” are allmeant to be inclusive of either ACKs or BACKs (block acknowledgements)and equivalents. For example, even if only one of ACK or BACK isspecifically referenced, such embodiments may be equally adapted to anyof ACK or BACK and equivalents. One of the benefits of video streamtransmission in accordance with the present invention may be asignificant reduction in number of negative acknowledgements (NACKs)received by the media server/gaming console 202. It is noted, however,that ACKs may not provide an immediate indication of channel conditionswhen, for example, an ACK is the result of successful error correctionon the receiving side of the wireless channel 208.

Packetizer/framing logic 236 (as well as other functions, such asencoder(s) 232) can be implemented in hardware, software or firmware. Inparticular embodiments, the packetizer/framing logic 236 can beimplemented using one or more microprocessors, microcomputers, centralprocessing units, field programmable logic devices, state machines,logic circuits, analog circuits, digital circuits, and/or any devicesthat manipulate signals (analog and/or digital) based on operationalinstructions that are stored in a memory module. The function, steps andprocesses performed by packetizer/framing logic 236 can be split betweendifferent devices to provide greater computational speed and/orefficiency. The associated memory module may be a single memory deviceor a plurality of memory devices. Such a memory device may be aread-only memory, random access memory, volatile memory, non-volatilememory, static random access memory (SRAM), dynamic random access memory(DRAM), flash memory, cache memory, and/or any device that storesdigital information. Note that when the packetizer/framing logic 236implements one or more of its functions via a state machine, analogcircuitry, digital circuitry, and/or logic circuitry, the memory modulestoring the corresponding operational instructions may be embeddedwithin, or external to, the circuitry comprising the state machine,analog circuitry, digital circuitry, and/or logic circuitry.

Further, within each of the media server/gaming console 202 and videodevices 210 and 220, any desired integration or combination may beimplemented for the various components, blocks, functional blocks,circuitries, et cetera therein, and other boundaries and groupings mayalternatively be performed without departing from the scope and spiritof the invention. For example, all components within the transceiver 234may be included within a first processing module or integrated circuit,and all components within the client transceivers 212/222 may beincluded within a second processing module or integrated circuit.Likewise, while shown as separate from video source 102, encoder(s) 232and packetizer/framing logic 236 could be incorporated into video source102 or other network element of communication system 200.

FIG. 3 is an exemplary transmission frame interval 300 for schedulingtransmission of at least two media (or video) packets to at least twovideo devices. In the illustrated embodiment, the transmission frameinterval 300 is of generally predetermined duration, and represents theorder in which packets are submitted to a PHY layer for transmission toclient devices. The transmission frame interval 300 is furthersubdivided into a plurality of transmission windows 302/304corresponding to the number of video devices communicating with a mediaserver/gaming console 202 over a shared channel. More particularly, afirst transmission window 302 and a second transmission window 304 areallocated for transmission of packets to a first client device (CD1) anda second client device (CD2), respectively.

Depending upon the application, a number of factors may be involved inthe selection of the duration of the transmission frame interval 300 andtransmission windows 302/304. When communicating video streams tomultiple video devices over a shared wireless channel, the display framerate of the video devices may or may not impose practical limitations onthe duration of the transmission frame interval 300. Usinghigh-definition television (HDTV) as an example, a typical frame rate issixty (60) frames/second (f/s), which may correspond to a transmissionframe interval of approximately 16.6 milliseconds (ms). Defaulttransmission window 302/304 allocations for individual video devices mayreflect a pro rata share of the transmission frame interval (e.g., 16.6ms/n, where n is a number of (unicast and/or grouped) video devicesreceiving a separate video stream over the shared channel). In theillustrated embodiment, where the transmission frame interval is 16.6 msand n=2, each transmission window has a default duration of 8.3 ms. Itis noted that the default duration of a transmission window need notreflect a pro rata share of a transmission frame interval, and incertain embodiments a given video device may be allocated a weightedportion of a transmission window based, for example, on the receptioncharacteristics, location, power state and/or display capabilities ofone or more devices receiving transmissions from a wireless accessdevice 114.

Further, the present invention is not limited to a particular videoframe frequency or transmission frame interval duration, nor is itlimited to any particular relationship between a video frame rate andtransmission frame interval. The present invention may also be utilizedwith more than two video devices, each of which may be allocated one ormore transmission windows.

While the present invention is applicable to a variety of standardizedand proprietary communications, certain embodiments may make use of QoSfeatures of, for example, the Enhanced Distributed Channel Access (EDCA)mode of the IEEE 802.11e link layer standard. Using EDCA as an example,a contention-free access to a channel may be granted to a particularwireless access device for a period of time referred to as a TransmitOpportunity (TXOP). A TXOP, one or more of which may be employed toestablish a transmission frame interval 300, is a bounded time intervalduring which a wireless access device can send as many frames or packetsas possible, so long as the duration of the transmissions does notextend beyond the maximum duration of the TXOP. The maximum size of TXOPbursting may be controlled, for example, by a QoS parameter setallocated in a beacon frame in EDCA mode.

In operation, one or more encoded media packets 310/320 are transmittedwithin each transmission window 302/304 of the transmission frameinterval 300. In an exemplary embodiment involving intra-frame andinter-frame video coding techniques, such media packet(s) 310/320 mayinclude all or much of the information necessary to decode a given videoframe (or, for example, a video subframe, video slice, et cetera) withina video stream. Further, media packet(s) 310/320 might comprise either aset of packets or a single packet, which may be a relatively largepacket that is segmented into smaller packets for transmission. Themedia packet(s) 310/320 may represent various forms of content orcombinations thereof, including video, transcoded video, audio,animation, text, still images, interactivity content, et cetera.

As described more fully below in conjunction with FIGS. 4A-4D, the mediapacket(s) 310/320 may be marked with expiration time-stamps before beingqueued for transmission. The initial expiration time-stamps correspondto the end (E_(t1) or E_(t2)) of an allocated transmission window, andthe expiry time of individual media packets may be dynamically adjustedin accordance with the invention for purposes of reallocating unusedportions of transmission windows.

Each of the disclosed transmission windows 302/304 may further includeat least one interleaved transmission acknowledgment fields ACK or NACK306, which may be used by the transmitting device in determiningtransmission status information for individual media packets 310/320. Inan alternate embodiment, BACK/BNACK 312/322 may be utilized to determinetransmission status information for one or more aggregated mediapackets. Other acknowledgement information or mechanisms may be employedto indicate transmission status and facilitate adaptive channelallocation in accordance with the invention.

FIGS. 4A-4D illustrate example allocations of the transmission frameinterval 300 under various wireless channel conditions and/or operatingconditions in accordance with the present invention. In the illustratedembodiments, default transmission windows for packets to be provided toa first client device (CD1) and packets to be provided to a secondclient device (CD2) are of approximately equal duration, but mayalternatively be disproportionate as a result, for example, of anearlier reallocation process or prioritization based on channel/devicecharacteristics and/or data load (which may be constant or variablebetween transmission windows in a media stream). If, for instance, afirst client device has poor reception characteristics, transmissionwindows could be established such that CD1 is initially allocated more(or less) than a pro rata share of the transmission frame interval(s)300. Further, default boundaries between transmission windows in thetransmission frame interval (and/or packet expiry times) may beadaptively altered in accordance with the invention.

The video encoder or other host device functionality may be operable togenerate an indication (e.g., by setting bits) of the first and lastmedia packets for a given video device during a transmission frameinterval 300. Prior to being forwarded to a transmission queue of thetransmitting device, these packets may be marked with an expirationtime-stamp corresponding to the end of the associated transmissionwindow. Packet marking/time-stamping could be performed, for example, byhardware or software functionality of the transceiver 234, such aspacketizer/framing logic 236.

For packets that are not successfully transmitted prior to suchexpiration time, a “transmit status” message may be communicated to ahost/application layer by the transceiver 234 indicating that thepackets have expired. Rather than being dropped or released by asoftware stack of the media server/gaming console 202, the expiredpackets may be buffered, for example, by the application layer forpotential re-submission to the transmission queue (with a new expirationtime) in the event that unused portions of the transmission frameinterval 300 or a subsequent transmission frame interval 300 areidentified.

In one embodiment, the following statistics for media packets CD1/CD2are maintained by the wireless driver 240 for use in approximatingunused capacity in the transmission frame interval 300 and calculatingnew expiration times:

T_(F)—the time at which the transmitting device receives transmissioncompletion information for the first media packet intended for a clientdevice during a transmission frame interval, and

T_(L)—the time at which the transmitting device receives transmissioncompletion information for the last media packet intended for a clientdevice during the transmission frame interval.

When the transceiver 234 receives the first media packet of CD1/CD2 fromthe encoder(s) 232, it calculates an expiration time (E_(c)) for allassociated packets as follows:

E _(c) =E _(c-1) +A _(c), where

-   -   A_(c) is the duration of the allocated transmission window        (e.g., 8.3 ms),    -   c=0 to N−1,    -   E_(c-1)=T_(L), and    -   N=total number of active client devices.

Referring now to FIG. 4A, media packets CD1 430 and CD2 432 aresuccessfully transmitted within first and second transmission windows,respectively. As shown, successful transmission of CD1 430 may result inan unused portion of the first transmission window. Following this firstunused portion, transmission of CD2 432 commences at the beginning of asecond transmission window allocated to CD2. Successful transmission ofCD2 results in an unused portion of the second transmission window.

In the example transmission frame interval 300 of FIG. 4B, unusedportions of a first transmission window (such as the first unusedportion shown in FIG. 4A) are “reallocated” in accordance with theinvention such that CD2 436 commences transmission during a reallocatedportion of the first transmission window and prior to the initial starttime of the second transmission window, continuing as necessary into thesecond transmission window. An exemplary method for the channelallocation of FIG. 4B is described below in conjunction with FIG. 5.

Referring to the example transmission frame interval 300 allocation ofFIG. 4C, a partial portion of CD1 438 is successfully transmitted duringa first transmission window. CD2 440 is next successfully transmittedprior to the end of a second transmission window. The unused portion ofthe second transmission window is used to transmit (during CD1 retry442) buffered packets of CD1 were not received correctly and that havenot reached an associated expiration time or have not exhausted amaximum number of retransmission attempts. For example, if expiredpackets of CD1 can be transmitted during the unused portion of thesecond transmission window, such (buffered) packets may be submitted fortransmission with a newly calculated expiration time corresponding tothe end of the second transmission window. If packets of CD1 retry 442(or other packets) expire before they can be transmitted during thetransmission frame interval 300, such packets may be dropped. In theexample of FIG. 4C, the amount of time available in the secondtransmission window for transmission of CD1 retry 442 may beapproximated as follows:

Unused time=duration of transmission frame interval—T_(L2)+T_(F1), whereT_(F1) is set to zero (0) in the illustrated embodiment for sake ofcalculation simplicity.

An exemplary method for channel allocation in accordance with FIG. 4C isdescribed below in conjunction with FIG. 6.

Referring to the example transmission frame interval 300 allocation ofFIG. 4D, the default order of transmission of CD1 446 and CD2 444 isreversed in accordance with the invention. Such reversal may be aresult, for example, of transmission tracking or other analytical stepindicating that transmission of CD2 444 would likely be completed priorto the end of an initial/default transmission window (e.g., asillustrated by CD2 440). In the illustrated embodiment, CD2 444 issuccessfully completed during a first assigned transmission window, andany unused portions of this transmission window are used fortransmission of CD1 446.

As will be appreciated, adaptive channel allocation according to theinvention may also enable improved power consumption in the clientdevices 1 and 2. Following reception of the final packet for a recipientclient device in a transmission frame interval (e.g., CD2 444), forexample, a recipient client device could be instructed to enter a lowpower state until the next transmission frame interval.

FIG. 5 is a flow chart that illustrates channel allocation by a wirelessaccess device according to an embodiment of the invention. Theillustrated method generally attempts to reallocate an unused portion(s)of a transmission frame interval for retransmission of failed packettransmissions, as well as transmission of packets which were not able(or unlikely) to be transmitted during a default transmission window.

Referring to step 500, media packets CD1 and CD2 are encoded fordelivery to respective client devices 1 and 2. The media packets CD1 inthe illustrated embodiment may include, for example, all or much of theinformation necessary to decode a video frame in a video stream destinedfor client device 1, and the media packets CD2 may similarly includeinformation necessary to decode a video frame in a video stream destinedfor client device 2. In one embodiment, the encoder(s) 232 generates allor substantially all of the media packets CD1 prior to generating mediapackets CD2, and in another embodiment CD1 and CD2 may be substantiallythe same. The media packets CD1 and CD2 are further marked or otherwiseassociated with initial expiration times corresponding to defaulttransmission window 302/304 allocations. In step 502 (which may occurbefore or after step 500) a first transmission window within thetransmission frame interval is established for media packets CD1 and asecond transmission window within the transmission frame interval isestablished for media packets CD2.

Next, in step 504, an attempt is made to transmit media packets CD1during the first transmission window. Under favorable channel/loadconditions, the transmission of CD1 may not require the full duration ofthe first transmission window (as in the illustrated embodiment). Theresulting unused portion of the first transmission window is calculatedin step 506 based on transmission completion information (or othertimely indications of transmission status) from the transmitting device.In particular, tracking of transmission initiation and completion times(on a per client basis) for packets having an expiration time within agiven transmission frame interval.

Channel reallocation according to the invention is next performed instep 508, and unused portions of the first transmission window arereallocated for transmission of CD2. Reallocation in accordance with theinvention may involve calculating or modifying the expiration time ofthe media packet(s) of CD2. In step 510, transmission of CD2 isinitiated during the reallocated portion of the first transmissionwindow, continuing as necessary into the second transmission window.

FIG. 6 is a flow chart that illustrates channel allocation according toan alternate embodiment of the invention. The illustrated methodgenerally attempts to reallocate an unused portion(s) of a secondtransmission window within a transmission frame interval forretransmission of failed packet deliveries in a preceding firsttransmission window.

Referring to step 600, media packets CD1 and CD2 are encoded fordelivery to respective client devices 1 and 2. Individually, the mediapackets CD1 and CD2 in the illustrated embodiment may include, forexample, all or much of the information necessary to decode a videoframe in a video stream. In step 602 (which may occur before or afterstep 600) a first transmission window within the transmission frameinterval is established for media packets CD1 and a second transmissionwindow within the transmission frame interval is established for mediapackets CD2.

Next, in step 604, an attempt is made to transmit media packets CD1during the first transmission window. Under poor channel/loadconditions, the transmission of CD1 may not be completed within thefirst transmission window (as in the illustrated embodiment). Ratherthan being dropped or released by the software stack of the mediaserver/gaming console 202, the “expired” packets of CD1 may be buffered,for example, by an application layer for potential re-submission to thetransmission queue (with a new expiration time) in unused portions ofthe transmission frame interval 300 or a subsequent transmission frameinterval.

Following the end of the first transmission window, an attempt is made(step 606) to transmit media packets CD2 during the second transmissionwindow. The unused portion of the second transmission window iscalculated in step 608 based on transmission completion information (orother timely indications of transmission status) from the transmittingdevice. In particular, tracking of transmission initiation andcompletion times (on a per client basis) may be employed for packetshaving an expiration time within a given transmission frame interval maybe employed.

Channel reallocation according to the invention is next performed instep 610, and any unused portions of the second transmission window arereallocated for transmission of CD1. In step 612, transmission isinitiated for the remaining media packets CD1 during the reallocatedportion of the second transmission window, continuing as necessary untilthe end of the second transmission window.

FIGS. 7A and 7B are functional block diagrams illustrating adaptivewireless channel allocation in a multi-user environment in accordancewith a further embodiment of the invention. In the illustratedembodiment, a media server/gaming console 702 provides one or more(rendered) media streams 704 and 706 to a video device(s) 1 and a videodevice(s) 2, respectively, over a wireless channel 708, which maycomprise, for example, a remote gaming interface/controller with videodisplay capabilities. Certain illustrated blocks, such as video source720, encoder(s) 732, and transceiver 734 function generally as describedabove.

The illustrated embodiment includes channel estimation 730 capabilities(which may implement a wide variety of channel estimation techniques,such as those incorporated by reference herein) to generate data for usein prioritizing communications to one or more video devices. Channelestimation 730 may utilize, for example, channel and receptioncharacteristics 744/750 and acknowledgment protocol signaling 746/752.

Channel and reception characteristics 744/750 may include, for example,a raw bit error rate, packet error rate, power mode information, signalto noise and interference ratio, Received Signal Strength Indication(RSSI), packet retransmission rate, multipath interference indications,gain estimates from, for example, a multi-variable common filter, andvarious reception parameters or other metrics that can be used to assessor rate the quality of received transmissions and/or the ability of thewireless channel 708 to effectively send the media streams 704 and 706to a video device(s) 1 and a video device(s) 2. Additional PHYcharacteristics and protocol parameters may be utilized in the channelestimation 730 process, including operational frequency/band, theselected modulation and coding scheme (MCS), the size of the MACprotocol data units (MPDUs) and the use of packet aggregation, supportedPHY rates of the transmission protocol, channel bandwidth (e.g., 20/40MHz), guard intervals (GIs), the relevant transmission acknowledgmentpolicy (e.g., Normal ACK/NACK, B-ACK (Block Acknowledgment) oraggregated acknowledgment, No-ACK), average size of the data (e.g.,MPDUs) in an encoded stream, channel load, the number of transmitstreams, et cetera. Channel estimation 730 in accordance with variousembodiments of the present invention may utilize one or more indicia ofthe above channel characteristics.

Referring more specifically to FIG. 7A, an exemplary initial allocationis shown for transmission frame intervals 300 used in the transmissionof media streams 704 and 706. In this embodiment, media packets VD1 forvideo device 1 and media packets VD2 for video device 2 are initiallyallocated approximately equal portions of the transmission frameinterval 300. As illustrated, this default allocation may, for example,result in a comparatively lower perceptual quality in the videodisplayed by video device 2. For example, the default allocation andchannel conditions might require a lower encoding bit rate for mediapackets VD2 in order to avoid expired packets, buffer overflow, etcetera.

FIG. 7B illustrates various exemplary channel allocations that may beutilized to reduced disparities in perceptual quality, and moreparticularly a situation wherein it is desirable to improve the quality(increase the relative priority) of a media stream delivered to videodevice 2. In this embodiment, the portion of the transmission frameinterval 300 allocated for media packets VD2 is increased at the expenseof media packets VD1 in order to facilitate improvements to the relativeperceptual quality of video delivered to video device 2. Under newallocational, a portion of a first transmission window for VD1 isreallocated to VD2. Under alternate allocation a2, the ordering of thetransmission windows is reversed, with a greater allocation for VD2.Under alternate allocation a3, the transmission frame interval 300 ispartitioned into a first transmission window for VD2, followed by asecond transmission window for VD1. A third transmission window, forVD2, is also provided. The third transmission window may be a reservedportion of the transmission frame interval 300, or an unused portion ofthe second transmission window.

HID events 742 or similar signaling may also be used in adaptive channelallocation in accordance with certain embodiments of the invention. Forexample, user controls 712/718 could permit a user to manually indicatean unsatisfactory perceptual quality for displayed media, and request areallocation of channel capacity.

FIG. 8 is an operational flow diagram illustrating a method foradaptively allocating channel capacity based on relative priorities ofreceiving devices in accordance with an embodiment of the presentinvention. Referring to step 800, first and second portions oftransmission frame intervals are allocated, respectively, fortransmission of media packets (VD1) to a first video device(s) andtransmission of media packets (VD2) to a second video device(s). In theillustrated embodiment, media packets VD1 and VD2 allocated fortransmission in a given transmission frame interval may include, forexample, all or much of the information necessary to decode video framesin video streams destined for first and second devices, respectively. Instep 802, transmission of VD1 and VD2 is initiated using thetransmission frame interval allocations of step 800.

Next, in step 804, relative priorities are set/adjusted for the firstand second video devices based, at least in part, on one or more of thefollowing: channel estimation information, reception characteristics,transmission acknowledgment information, video device and video sourcecharacteristics and/or user feedback. The relative priorities areutilized in step 806 to (re)allocate at least one portion of thetransmission frame intervals in order to improve delivery of mediapackets to one of the first or second video devices (which may comprisea logical grouping of such devices). The method continues in step 808where transmission of VD1 and VD2 is attempted using prioritizedtransmission frame (or other channel capacity) allocations. Aspreviously discussed, reallocation in accordance with the invention mayresult in a reduction in the perceptual quality of decoded media packetsin a video device that has a reduced allocation of the transmissionframe interval as a result of a prioritization/reallocation process.

As shown in optional step 810, the transmissions of step 808 may besubjected to further reallocation (e.g., reallocation of transmissionwindows of a transmission frame interval in accordance with methodsdescribed above in conjunction with FIGS. 4-6). Adaptive channelallocation in accordance with the invention may comprise various othertechniques for improving/allocating bandwidth utilization. For example,the encoder(s) 732 may be instructed to encode the media stream 704 forCD1 with a lower/higher bit rate (quality), video frame rate, or videoframe size, thereby accommodating a reduced or increased allocation ofthe transmission frame interval. In yet another embodiment, the qualityof an audio portion of a media stream might be reduced in order toincrease the channel allocation for a video portion of the media stream(or vice versa).

In a further mode of operation, and in conjunction with or in lieu ofchannel reallocation, the media server/gaming console 702 mayselectively adjust one or more protocol parameters, such as the packetlength, data rate, forward error correction, error detection, codingscheme, modulation spectral densities, contention period, and back-offparameters used in communications with one or more video devices. Inthis fashion, the protocol parameters can be adapted based on theconditions or estimated conditions of the network, including not onlythe association characteristics of a particular device, but thereception characteristics of a plurality of devices, to reachacceptable/prioritized media delivery qualities.

Although the above description relates in particular to a systeminvolving a host device communicating media content in a single-hopenvironment with a plurality of video devices, it should be clear thatthe teaching of the present invention might be applied to other types ofdata content and systems, including multi-hop environments.

It is noted that the various modules and/or circuitries (e.g., encodingmodules and/or circuitries, decoding modules and/or circuitries, encoderrate adaptation modules and/or circuitries, et cetera) described hereinmay be a single processing device or a plurality of processing devices.Such a processing device may be a microprocessor, micro-controller,digital signal processor, microcomputer, central processing unit, fieldprogrammable gate array, programmable logic device, state machine, logiccircuitry, analog circuitry, digital circuitry, and/or any device thatmanipulates signals (analog and/or digital) based on operationalinstructions. The operational instructions may be stored in a memory.The memory may be a single memory device or a plurality of memorydevices. Such a memory device may be a read-only memory (ROM), randomaccess memory (RAM), volatile memory, non-volatile memory, staticmemory, dynamic memory, flash memory, and/or any device that storesdigital information. It is also noted that when the processing moduleimplements one or more of its functions via a state machine, analogcircuitry, digital circuitry, and/or logic circuitry, the memory storingthe corresponding operational instructions may be embedded with thecircuitry comprising the state machine, analog circuitry, digitalcircuitry, and/or logic circuitry. In such an embodiment, a memorystores, and a processing module coupled thereto executes, operationalinstructions corresponding to at least some of the steps and/orfunctions illustrated and/or described herein.

It is also noted that any of the connections or couplings between thevarious modules, circuits, functional blocks, components, devices, etcetera within any of the various diagrams or as described herein may bedifferently implemented in different embodiments. For example, in oneembodiment, such connections or couplings may be direct connections ordirect couplings there between. In another embodiment, such connectionsor couplings may be indirect connections or indirect couplings therebetween (e.g., with one or more intervening components there between).Of course, certain other embodiments may have some combinations of suchconnections or couplings therein such that some of the connections orcouplings are direct, while others are indirect. Differentimplementations may be employed for effectuating communicative couplingbetween modules, circuits, functional blocks, components, devices, etcetera without departing from the scope and spirit of the invention.

Various aspects of the present invention have also been described abovewith the aid of method steps illustrating the performance of specifiedfunctions and relationships thereof. The boundaries and sequence ofthese functional building blocks and method steps have been arbitrarilydefined herein for convenience of description. Alternate boundaries andsequences can be defined so long as the specified functions andrelationships are appropriately performed. Any such alternate boundariesor sequences are thus within the scope and spirit of the claimedinvention.

Various aspects of the present invention have been described above withthe aid of functional building blocks illustrating the performance ofcertain significant functions. The boundaries of these functionalbuilding blocks have been arbitrarily defined for convenience ofdescription. Alternate boundaries could be defined as long as thecertain significant functions are appropriately performed. Similarly,flow diagram blocks may also have been arbitrarily defined herein toillustrate certain significant functionality. To the extent used, theflow diagram block boundaries and sequence could have been definedotherwise and still perform the certain significant functionality. Suchalternate definitions of both functional building blocks and flowdiagram blocks and sequences are thus within the scope and spirit of theclaimed invention.

One of average skill in the art will also recognize that the functionalbuilding blocks, and other illustrative blocks, modules and componentsherein, can be implemented as illustrated or by discrete components,application specific integrated circuits, processors executingappropriate software and the like or any combination thereof.

Moreover, although described in detail for purposes of clarity andunderstanding by way of the aforementioned embodiments, various aspectsof the present invention are not limited to such embodiments. It will beobvious to one of average skill in the art that various changes andmodifications may be practiced within the spirit and scope of theinvention, as limited only by the scope of the appended claims.

1. A method for communicating media streams from a transmitting deviceto a first client device and a second client device over a wirelesschannel, comprising: generating first encoded media packets fortransmission to the first client device during a transmission frameinterval; generating second encoded media packets for transmission tothe second client device during the transmission frame interval;allocating a first transmission window and a second transmission windowin the transmission frame interval; transmitting the first encoded mediapackets during the first transmission window; and reallocating an unusedportion of the first transmission window for transmission of the secondencoded media packets.
 2. The method of claim 1, wherein the step ofreallocating an unused portion of the first transmission window utilizestransmission status information associated with first encoded mediapackets to identify the unused portion, the transmission statusinformation provided by the transmitting device.
 3. The method of claim2, wherein the step of reallocating an unused portion of the firsttransmission window comprises accelerating the start time of the secondtransmission window.
 4. The method of claim 1, further comprising:reversing the order in which the first encoded media packets and thesecond encoded media packets are generated for transmission in asubsequent transmission frame interval.
 5. The method of claim 1,wherein the first and second encoded media packets represent renderedvideo data.
 6. The method of claim 5, wherein the client devices aregame controllers.
 7. A method for transmitting media streams to a firstclient device and a second client device over a wireless channel,comprising: generating first encoded media packets for transmission tothe first client device during a transmission frame interval; generatingsecond encoded media packets for transmission to the second clientdevice during the transmission frame interval; allocating a firsttransmission window and a second transmission window in the transmissionframe interval; transmitting the first encoded media packets during thefirst transmission window; transmitting the second encoded media packetsduring the second transmission window; identifying an unused portion ofthe second transmission window; and transmitting select first encodedmedia packet(s) during the unused portion of the second transmissionwindow.
 8. The method of claim 7, wherein the step of identifying theunused portion of the second transmission window utilizes transmissionstatus information associated with the second encoded media packets, andwherein the select first encoded media packet(s) comprise first encodedmedia packets which are not successfully transmitted during the firsttransmission window.
 9. The method of claim 8, further comprising:buffering the select first encoded media packet(s) until the end of thesecond transmission window or receipt of associatedtransmission/retransmission completion information.
 10. The method ofclaim 9, wherein the step of reallocating an unused portion of the firsttransmission window comprises extending the expiry time of the selectfirst encoded media packet(s).
 11. The method of claim 7, furthercomprising: reversing the order in which the first encoded media packetsand the second encoded media packets are generated for transmission in asubsequent transmission frame interval.
 12. The method of claim 7,wherein the first and second encoded media packets represent renderedvideo data.
 13. The method of claim 12, wherein the client devices aregame controllers.
 14. The method of claim 7, wherein the step ofgenerating the first and second media packets comprises identifying thefirst and last media packet of each for a given transmission frameinterval.
 15. An apparatus, comprising: a transceiver for supportingwireless media transmissions to at least a first client device and asecond client device; an encoder(s) for encoding first and second mediapackets for transmission by the transceiver to the first and secondclient devices, respectively, during a transmission frame interval; anda processor for adaptively allocating the transmission frame intervalbetween the first and second client devices, adaptive allocationcomprising: establishing first and second transmission windows in thetransmission frame interval for the first and second media packets,respectively, identifying an unused portion of one of the transmissionwindows, and reallocating the unused portion for use in transmission ofmedia packets associated with the other transmission window.
 16. Theapparatus of claim 15, wherein identification of an unused portion ofone of the transmission windows employs transmission status informationassociated with the first or second media packets.
 17. The apparatus ofclaim 15, wherein the processor is further operable to reverse the orderof the transmission windows in a subsequent transmission frame intervalif the unused portion is a portion of the second transmission window.18. The apparatus of claim 15, wherein reallocating an unused portion ofone of the transmission windows comprises altering the expiry time ofthe media packets associated with the other transmission window.
 19. Theapparatus of claim 15, wherein the first and second media packetsrepresent rendered video streams.
 20. The apparatus of claim 19, theapparatus comprising a gaming console.